home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 21 / CU Amiga Magazine's Super CD-ROM 21 (1998)(EMAP Images)(GB)[!][issue 1998-04].iso / CUCD / Programming / RTGMaster / devdocs / SpriteExamp.lha / rtgbobsystem / SpriteExample.S < prev   
Text File  |  1997-12-25  |  6KB  |  292 lines

  1.  
  2. ;***********************************************************************
  3. ;*---------------------------------------------------------------------*
  4. ;*                    RTG BOB-SYSTEM EXAMPLE SOURCE                    *
  5. ;*---------------------------------------------------------------------*
  6. ;*        Created by Rady Marusa, Ablaze Entertainment Slovakia.       *
  7. ;*                      http://www.vadium.sk/ablaze                    *
  8. ;*---------------------------------------------------------------------*
  9. ;***********************************************************************
  10.  
  11. ;-----------------------------------------------------------------------
  12.  
  13.     INCLUDE "RTGMASTER/RTGMASTER.I"
  14.     INCLUDE "RTGMASTER/RTGSUBLIBS.I"
  15.     INCLUDE "RTGMASTER/RTGMASTER_LIB.I"
  16.  
  17. ;------------------------------------------------------------------------
  18.  
  19.     SECTION EXAMPLE,CODE
  20.  
  21.  
  22. START   MOVE.L  SP,OLD_SP
  23.  
  24.     BSR.W   RTG_NEW
  25.  
  26.     MOVE.L  RTGPTR,A6
  27.     MOVE.L  RTG_SCR,A0
  28.     MOVEQ   #8,D0
  29.     JSR     -$D8(A6)                ; OPEN RTGBOB SYSTEM
  30.     MOVE.L  D0,RTGBOB
  31.  
  32.     BSR.W   INIT
  33.     
  34. .LOOP   MOVE.L  RTGPTR,A6
  35.     MOVE.L  RTGBOB,A0
  36.     MOVE.L  CHUNKY_BUFFER,A1
  37.     MOVE.L  BACK_BUFFER,A2
  38.     MOVEQ   #1,D0
  39.     JSR     -$EA(A6)                ; RTG REFRESH BUFFER
  40.     
  41.     MOVE.L  RTGPTR,A6
  42.     MOVE.L  RTGBOB,A0
  43.     MOVE.L  CHUNKY_BUFFER,A1
  44.     MOVE.L  #SPRDATA,A2
  45.     MOVE.L  GOGO,D0
  46.     SUB.L   #120,D0
  47.     MOVEQ   #40,D1
  48.     MOVE.L  #64,D2                  ; SPRITE SIZE X
  49.     MOVE.L  #50,D3                  ; SPRITE SIZE Y
  50.     JSR     -$F0(A6)                ; RTG DRAW SPRITE 1
  51.  
  52.     MOVEQ   #40,D0
  53.     MOVE.L  GOGO,D1
  54.     SUB.L   #120,D1
  55.     JSR     -$F0(A6)                ; RTG DRAW SPRITE 2
  56.  
  57.     MOVE.L  GOGO,D0
  58.     SUB.L   #120,D0
  59.     MOVE.L  GOGO,D1
  60.     SUB.L   #120,D1
  61.     JSR     -$F0(A6)                ; RTG DRAW SPRITE 3
  62.  
  63.     ADD.L   #1,GOGO                 ; SPRITE MOVEMENT...
  64.     ANDI.L  #511,GOGO
  65.  
  66.     JSR     CONVERT                 ; AGA/CGFX TARGET
  67.     BTST.B  #10,$DFF016
  68.     BNE.W   .LOOP
  69.  
  70.     BSR.W   RTG_OLD
  71.     MOVE.L  RTGPTR,A6
  72.     MOVE.L  RTGBOB,A0
  73.     JSR     -$E4(A6)                ; CLOSE RTGBOB SYSTEM
  74.     RTS
  75.  
  76.     
  77. FAILED  BSR.W   RTG_OLD
  78.     MOVE.L  RTGPTR,A6
  79.     MOVE.L  RTGBOB,A0
  80.     JSR     -$E4(A6)                ; CLOSE RTGBOB SYSTEM
  81.     MOVE.L  OLD_SP,SP
  82.     RTS
  83.  
  84.  
  85.  
  86. INIT    MOVE.L  #BUF1,CHUNKY_BUFFER     ; INIT BOTH BUFFERS
  87.     MOVE.L  #BUF2,BACK_BUFFER
  88.     LEA     BGR(PC),A0
  89.     MOVE.L  CHUNKY_BUFFER(PC),A1
  90.     BSR.W   COPY
  91.     MOVE.L  CHUNKY_BUFFER(PC),A0
  92.     MOVE.L  BACK_BUFFER(PC),A1
  93.     BSR.W   COPY
  94.     BSR.W   INITPAL
  95.     RTS
  96.  
  97.  
  98. INITPAL LEA     PALLETE(PC),A0          ; INIT PALLETE
  99.     LEA     COLORS+4(PC),A1
  100.     MOVE.W  #767,D0
  101. .LOOP   MOVE.B  (A0)+,(A1)
  102.     ADDQ    #4,A1
  103.     DBF     D0,.LOOP
  104.     MOVE.L  RTGPTR,A6
  105.     MOVE.L RTG_SCR,A0
  106.     LEA COLORS,A1
  107.     JSR _LVOLoadRGBRtg(A6)
  108.     RTS
  109.  
  110.  
  111. COPY    MOVE.L  #5119,D0                ; COPY SCREEN (320x256 PIXELS)
  112. .LOOP   MOVE.L  (A0)+,(A1)+
  113.     MOVE.L  (A0)+,(A1)+
  114.     MOVE.L  (A0)+,(A1)+
  115.     MOVE.L  (A0)+,(A1)+
  116.     DBF     D0,.LOOP
  117.     RTS
  118.  
  119. *********************************************************************
  120.  
  121. RTG_NEW MOVE.L  $4,A6                   ; INIT RTG STUFF
  122.     LEA     RTGNAME,A1
  123.     MOVEQ   #0,D0
  124.     JSR     -408(A6)
  125.     MOVE.L  D0,RTGPTR
  126.     BEQ.W   .ERR3
  127.     MOVE.L  RTGPTR,A6
  128.     LEA     SRTAGS,A0
  129.     JSR     _LVORtgScreenModeReq(A6)
  130.     MOVE.L  D0,SMODE
  131.     BEQ.W   FAILED
  132.     MOVE.L  SMODE,A0
  133.     LEA     SCTAGS,A1
  134.     JSR     _LVOOpenRtgScreen(A6)
  135.     MOVE.L  D0,RTG_SCR
  136.     BEQ.W   .ERR4
  137.     MOVE.L  RTG_SCR,A0
  138.     LEA     TAGS,A1
  139.     JSR     _LVOGetRtgScreenData(A6)
  140.     MOVE.L  RTG_SCR,A0
  141.     LEA     COLORS,A1
  142.     JSR     _LVOLoadRGBRtg(A6)
  143.     MOVE.L  RTG_SCR,A0
  144.     JSR     _LVOLockRtgScreen(A6)
  145.     MOVE.L  D0,SCREEN
  146.     MOVE.L  RTG_SCR,A0
  147.     MOVEQ   #0,D0
  148.     JSR     _LVOGetBufAdr(A6)
  149.     MOVE.L  D0,BUFFER1
  150.     BEQ.W   FAILED
  151.     MOVE.L  RTG_SCR,A0
  152.     MOVEQ   #1,D0
  153.     JSR     _LVOGetBufAdr(A6)
  154.     MOVE.L  D0,BUFFER2
  155.     MOVE.L  D0,BUFFERO
  156.     BEQ.W   FAILED
  157.     MOVE.L  RTG_SCR,A0
  158.     JSR     _LVORtgInitRDCMP(A6)
  159.     MOVE.L  D0,RDCMP
  160.     CLR.W   _ACTIVE
  161.     RTS
  162. .ERR3   MOVEQ   #-3,D0
  163.     BRA.W   FAILED
  164. .ERR4   MOVEQ   #-4,D0
  165.     BRA.W   FAILED
  166.     
  167. RTG_OLD MOVE.L  RTGPTR,A6               ; CLOSE RTG STUFF
  168.     MOVE.L  RTG_SCR,D7
  169.     BEQ.S   .EXIT
  170.     MOVE.L  D7,A0
  171.     JSR     _LVOUnlockRtgScreen(A6)
  172.     MOVE.L  RTG_SCR,D0
  173.     BEQ.S   .EXIT
  174.     MOVE.L  D0,A0
  175.     JSR     _LVOCloseRtgScreen(A6)
  176.     MOVE.L  SMODE,D0
  177.     BEQ.S   .EXIT
  178.     MOVE.L  D0,A0
  179.     JSR     _LVOFreeRtgScreenModeReq(A6)
  180.     MOVE.L  RTGPTR,D0
  181.     BEQ.S   .EXIT
  182.     MOVE.L  D0,A1
  183.     MOVE.L  $4.w,A6
  184.     JSR     -414(A6)
  185. .EXIT   RTS
  186.  
  187. CONVERT MOVE.L RTG_SCR,A0
  188.     MOVE.L BUFFERO,A1
  189.     MOVE.L CHUNKY_BUFFER,A2
  190.     MOVEQ #0,D0             ; X DEST OFFSET
  191.     MOVEQ #0,D1             ; Y DEST OFFSET
  192.     MOVE.L WIDTH,D2         ; WIDTH OF THE CHUNKY-COPY/C2P
  193.     MOVE.L HEIGHT,D3        ; HEIGHT OF THE CHUNKY-COPY/C2P
  194.     MOVE.L WIDTH,D4         ; SOURCE-WIDTH
  195.     MOVE.L HEIGHT,D5        ; SOURCE-HEIGHT
  196.     MOVE.L #0,D6            ; SOURCE-X-OFFSET
  197.     MOVE.L #0,D7            ; SOURCE-Y-OFFSET
  198.     MOVE.L #0,A3            ; NO MASKING (IMPORTANT !!!)
  199.     MOVE.L RTGPTR,A6
  200.     JSR _LVOCopyRtgBlit(A6) ; DO IT!
  201.     MOVEQ   #0,D0
  202.     MOVE.W  _ACTIVE,D0
  203.     ADDQ.W  #1,D0
  204.     MOVE.W  D0,_ACTIVE
  205.     ANDI.W  #1,D0
  206.     BNE.S   .RTG1
  207.     MOVE.L  BUFFER2,BUFFERO
  208.     BRA.S   .CONT
  209. .RTG1   MOVE.L  BUFFER1,BUFFERO
  210. .CONT   MOVE.L  RTGPTR,A6
  211.     MOVE.L  RTG_SCR,A0
  212.     JSR     _LVOSwitchScreens(A6)
  213.     RTS
  214.  
  215. RTGNAME DC.B    'rtgmaster.library',0
  216.     EVEN
  217.  
  218. RTGPTR  DC.L 0
  219.  
  220. SMODE   DC.L 0
  221. SCREEN  DC.L 0
  222. RDCMP   DC.L 0
  223. RTG_SCR DC.L 0
  224.  
  225. COLORS  DC.W    256,0
  226.     BLK.B   3072,0
  227.     DC.L    0,0
  228.  
  229. BUFFER1 DC.L    0
  230. BUFFER2 DC.L    0
  231. BUFFERO DC.L    0
  232. _ACTIVE DC.W    0,0
  233.  
  234. CHUNKY_BUFFER   DC.L    0
  235. BACK_BUFFER     DC.L    0
  236.  
  237. ;-----------------------------------------------------------------------
  238.  
  239. SRTAGS  dc.l smr_MinWidth,320
  240.     dc.l smr_MaxWidth,320
  241.     dc.l smr_MinHeight,256
  242.     dc.l smr_MaxHeight,256
  243.     dc.l smr_InitialWidth,320
  244.     dc.l smr_InitialHeight,256
  245.     dc.l smr_InitialDepth,8
  246.     dc.l smr_ChunkySupport,$00000200
  247.     dc.l smr_PlanarSupport,$000000c0
  248.     dc.l smr_PlanarRoundW,32
  249.     dc.l smr_PlanarRoundH,32
  250.     dc.l smr_ChunkyRoundW,32
  251.     dc.l smr_ChunkyRoundH,32
  252.     dc.l smr_Buffers,2
  253.     dc.l smr_ForceOpen,0
  254.     dc.l 0,0
  255.     
  256. SCTAGS  dc.l rtg_Buffers,2
  257.     dc.l rtg_Draggable,-1
  258.     dc.l rtg_Interleaved,0
  259.     dc.l rtg_PlanarSupport,$000000c0
  260.     dc.l rtg_ChunkySupport,$00000200
  261.     dc.l 0,0
  262.     
  263. TAGS    dc.l grd_PlaneSize
  264. BPLSIZE dc.l 0
  265.     dc.l grd_Width
  266. WIDTH   dc.l 0
  267.     dc.l grd_Height
  268. HEIGHT  dc.l 0
  269.     dc.l grd_Depth
  270. DEPTH   dc.l 0
  271.     dc.l grd_PixelLayout
  272. PIXEL   dc.l 0
  273.     dc.l 0,0
  274.  
  275. OLD_SP  DC.L    0
  276. RTGBOB  DC.L    0
  277. GOGO    DC.L    64
  278.  
  279. PALLETE INCBIN  'BACKGROUND.PAL'
  280. BGR     INCBIN  'BACKGROUND.BIN'
  281. SPRDATA INCBIN  'SPRITE.BIN'
  282.  
  283.  
  284. ;----------------------------------------------------------------------
  285.  
  286.     SECTION BUFFERS,bss_f
  287.  
  288. BUF1    DS.B    320*256
  289. BUF2    DS.B    320*256 
  290.  
  291.  
  292.